package cn.trs.common.constant.redis;


import static cn.trs.common.constant.redis.RedisKeyDefine.KeyTypeEnum.*;

/**
 * Redis Key 枚举类
 *
 * @author 王元晨
 */
public interface RedisKeyConstants {

    /** 机器人id或者租户id,0-23 */
    RedisKeyDefine MSG_TOKEN_HOUR_SUM = new RedisKeyDefine("获取消息字符数量", "chatbot:msg_token:%s:%s", STRING, Integer.class, RedisKeyDefine.TimeoutTypeEnum.DYNAMIC);
    /** 机器人id或者租户id,0-23 */
    RedisKeyDefine TTS_TOKEN_HOUR_SUM = new RedisKeyDefine("语音token", "chatbot:tts_token:%s:%s", HASH, Integer.class, RedisKeyDefine.TimeoutTypeEnum.DYNAMIC);
    /** 机器人id或者租户id,0-23 */
    RedisKeyDefine LLM_TOKEN_HOUR_SUM = new RedisKeyDefine("llm模型token", "chatbot:llm_token:%s:%s", HASH, Integer.class, RedisKeyDefine.TimeoutTypeEnum.DYNAMIC);
    /** 机器人id或者租户id,0-23 */
    RedisKeyDefine EMBED_TOKEN_HOUR_SUM = new RedisKeyDefine("embed模型token", "chatbot:embed_token:%s:%s", HASH, Integer.class, RedisKeyDefine.TimeoutTypeEnum.DYNAMIC);
    /** 机器人id或者租户id,0-23 */
    RedisKeyDefine SIZE_COUNT_HOUR_SUM = new RedisKeyDefine("图片模型Size", "chatbot:size_count:%s:%s", HASH, Integer.class, RedisKeyDefine.TimeoutTypeEnum.DYNAMIC);
   /** 租户id:功能管理id*/
    RedisKeyDefine TENANT_TOKEN_CONTROL = new RedisKeyDefine("租户token控制key", "chatbot:tenant_token:%s:%s", STRING, Integer.class, RedisKeyDefine.TimeoutTypeEnum.DYNAMIC);
    /** 近24小时首次生成时间 */
    RedisKeyDefine MSG_WORD = new RedisKeyDefine("近24小时首次生成时间", "chatbot:msg:word:%s", ZSET, Long.class, RedisKeyDefine.TimeoutTypeEnum.DYNAMIC);
    /** 近24小时Token生成量 */
    RedisKeyDefine ALL_TOKEN = new RedisKeyDefine("近24小时Token生成量", "chatbot:all_token:%s", ZSET, Integer.class, RedisKeyDefine.TimeoutTypeEnum.DYNAMIC);
    /** 官网访客数据，存最近24小时的 */
    RedisKeyDefine VISITOR_INFO = new RedisKeyDefine("访客信息", "chatbot:visitor", ZSET, String.class, RedisKeyDefine.TimeoutTypeEnum.DYNAMIC);
    /** 付费租户数据，存最近24小时的 */
    RedisKeyDefine PAY_TENANT = new RedisKeyDefine("付费租户数据", "chatbot:payTenant", ZSET, Integer.class, RedisKeyDefine.TimeoutTypeEnum.DYNAMIC);
    /** 今日付费租户，今天日期格式为yyyyMMdd */
    RedisKeyDefine TODAY_PAY_TENANT = new RedisKeyDefine("今日付费租户数量", "chatbot:payTenant:%s", ZSET, Integer.class, RedisKeyDefine.TimeoutTypeEnum.DYNAMIC);
    /** 租户id */
    RedisKeyDefine STORE_CONSUME_TOKEN = new RedisKeyDefine("商店中消耗的token", "store:consume:token:%s", HASH, Integer.class, RedisKeyDefine.TimeoutTypeEnum.DYNAMIC);
    RedisKeyDefine STORE_EARN_TOKEN = new RedisKeyDefine("商店中赚到的token", "store:earn:token:%s", HASH, Integer.class, RedisKeyDefine.TimeoutTypeEnum.DYNAMIC);
    RedisKeyDefine STORE_CONSUME_CALL = new RedisKeyDefine("商店中消耗的调用次数", "store:consume:call:%s", HASH, Integer.class, RedisKeyDefine.TimeoutTypeEnum.DYNAMIC);
    RedisKeyDefine STORE_EARN_CALL = new RedisKeyDefine("商店中赚到的调用次数", "store:earn:call:%s", HASH, Integer.class, RedisKeyDefine.TimeoutTypeEnum.DYNAMIC);
    RedisKeyDefine STORE_CONSUME_ENERGY = new RedisKeyDefine("商店中消耗的电力值", "store:consume:param:%s", STRING, Integer.class, RedisKeyDefine.TimeoutTypeEnum.DYNAMIC);
    RedisKeyDefine STORE_EARN_ENERGY = new RedisKeyDefine("商店中赚到的电力值", "store:earn:param:%s", STRING, Integer.class, RedisKeyDefine.TimeoutTypeEnum.DYNAMIC);
}
